home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer 2.0 / Internet Surfer 2.0 (Wayzata Technology) (1996).iso / pc / text / mac / faqs.042 < prev    next >
Encoding:
Text File  |  1996-02-12  |  27.7 KB  |  653 lines

  1. Frequently Asked Questions (FAQS);faqs.042
  2.  
  3.  
  4.  
  5.    Fortran compilers are not required (and most do not) to protect
  6.    users from themselves, that is to say
  7.  
  8.      call sub(1)
  9.      ...
  10.      subroutine sub(i)
  11.      i=i+10
  12.      return
  13.      end
  14.  
  15.    Is non-standard complying but the compiler need not tell you about
  16.    it. Arguably worse, the compiler can produce any result it deems
  17.    fit, up to and including the start of world war III (assuming the
  18.    right optional hardware has been installed).
  19.  
  20.    Fortran lint programs focus on searching out search programming
  21.    errors and alerting the user.
  22.  
  23.    There are a wide variety of commercial and pd products. A partial
  24.    list follows:
  25.  
  26.    IPT FORTRAN lint 1096 East Meadow Circle, Palo Alto, CA 94303, 415/494-7500.
  27.  
  28.    Forwarn from quibus 719 527 1384.
  29.  
  30.    QA-FORTRAN from PRL UK 01 942 9242 and perhaps  (817) 589 0949
  31.  
  32.    FORCHECK from Leiden University ND 31 71 276804
  33.  
  34.    FTNCHEK from netlib. One may receive FTNCHEK by mailing to
  35.    netlib@ornl.gov the following message:
  36.  
  37.     send ftnchek from fortran
  38.  
  39.     And Ajay Shah, (213)749-8133, ajayshah@usc.edu
  40.     You may want to mention f2c followed by an ANSI C compiler as a great
  41.     free fortran lint. I could not have survived writing fortran if it
  42.     were not for f2c.  You need to know some C to deal with the error
  43.     messages, but that's not a bad price to pay.
  44.  
  45. From: "John D. McCalpin" <mccalpin@perelandra.cms.udel.edu>
  46. Not too many people use it, but you might want to add TOOLPACK to
  47. the list of FORTRAN "lint" packages.  Here is the blurb that I
  48. send to people who are interested:
  49.  
  50. ======================================================================
  51. TOOLPACK is a large set of utilities written in FORTRAN to do FORTRAN
  52. code analysis and transformation.
  53.  
  54. TOOLPACK begins by actually parsing the program with a fully FORTRAN-
  55. compliant parser and then does all the code transformations on the
  56. parse and comment trees.
  57.  
  58. This means that you cannot confuse TOOLPACK by silly FORTRAN-isms that
  59. can easily overwhelm more naive utilities (such as ftnchek).  For
  60. example, TOOLPACK correctly handles statements such as:
  61.  
  62.       D O U B L E  P R E C I S I O N   A(100,100)
  63.       doubleprecision fred
  64.  
  65.       DO I = 1.2
  66.       READ(I,J) = 10.
  67.  
  68.  
  69. The usual interface to TOOLPACK is a set of 'csh' scripts that run the
  70. various TOOLPACK utilities to do specific tasks.
  71.  
  72. The ones you will find most useful are: pol, polx, apt, dapt, decs,
  73. getlst, and discard.   These are the prettyprinter, precision converter,
  74. declaration standardizer, and some necessary utilities.  See below for
  75. more details.
  76.  
  77. By aware that TOOLPACK is *very* rigorous about the FORTRAN-77
  78. standard.  You may or may not consider this an advantage.
  79.  
  80. The scripts are described by the 'scripts' script, which delivers the
  81. following:
  82. ----------------------------------------------------------------------------
  83. In the Toolpack script summaries below, the section numbers refer to
  84. the Unix environment Users' Guide where more detailed information can
  85. be found.  To obtain on-line information about a script's usage, type
  86. its name without any arguments.
  87.  
  88. FORTRAN Analysis Facilities
  89.  
  90.   getlst  Produce a listing showing statement and token numbers. Report
  91.           lexical scanning warnings and errors. (3.1.1)
  92.  
  93.   syn     Report errors and warnings detected by lexical scanning, parsing,
  94.           and examining a set of symbol attributes. (3.1.2)
  95.  
  96.   sem     Report errors and warnings detected by lexical scanning, parsing,
  97.           and examining an extended set of symbol attributes. (3.1.3)
  98.  
  99.   pfort   Report errors and warnings detected by lexical scanning, parsing,
  100.           examining an extended set of symbol attributes, checking for unsafe
  101.           references, and checking conformance to a portable subset of
  102.           FORTRAN. (3.1.4)
  103.  
  104.   statdoc In a user-supplied report template, place information derived from
  105.           static analysis to assist in documenting the program.  Examples of
  106.           information the user may request are COMMON block usage, symbol
  107.           attributes, and a graph of subprogram calls. (3.1.5)
  108.  
  109.   inst    Instrument a FORTRAN program so that the instrumented program, when
  110.           executed, produces information about program execution. (3.2.1)
  111.  
  112.   rundoc  Execute a program instrumented by inst and, in a user-supplied
  113.           report template, place information derived from dynamic analysis
  114.           to assist in documenting the program.  For example, the user may
  115.           determine the frequency of execution of program segments. (3.2.2)
  116.  
  117. FORTRAN Transformation Facilities
  118.  
  119.   pol     Format a FORTRAN program under control of user-supplied options
  120.           in a Polish option file. (4.1.1)
  121.  
  122.   polx    Construct a Polish option file via a menu-driven editor. (4.1.2)
  123.  
  124.   decs    Rebuild the declarative part of a FORTRAN program. (4.2.1)
  125.  
  126.   apt     Transform a single-precision version of a FORTRAN program to
  127.           double precision or vice versa. (4.3.1)
  128.  
  129.   dapt    Convert precision and rebuild the declarations, combining the
  130.           functions of apt and decs. (4.3.2)
  131.  
  132.   cname   Change the names in a FORTRAN program that satisfy conditions
  133.           derived from information in either the lexical token stream or
  134.           the symbol table or both. (4.4.1)
  135.  
  136.   lname   Transform a FORTRAN program containing long names to a program
  137.           with standard names. (4.4.2)
  138.  
  139.   stf     Rebuild the flow of control in a FORTRAN program to standardized
  140.           form. (4.5.1)
  141.  
  142.   ucs     Transform nests of DO loops matching certain paradigms so that
  143.           the transformed code executes more efficiently on vector machines.
  144.           (4.6.1)
  145.  
  146. Miscellaneous Facilities
  147.  
  148.   fdiff   Compare two FORTRAN programs at the lexical token level. (5.1.1)
  149.  
  150.   dac     Compare two data files, neglecting certain formatting differences
  151.           and numerical differences smaller than a given tolerance. (5.1.2)
  152.  
  153.   vcon    Create, edit, and retrieve versions of a file contained in a
  154.           version file. (5.2.1)
  155.  
  156.   discard Remove unneeded files created by the above scripts. (5.3.1)
  157.  
  158.   scripts Print this summary of the scripts. (5.4.1)
  159.  
  160. ----------------------------------------------------------------------------
  161.  
  162. TOOLPACK can be obtained by anonymous ftp from perelandra.cms.udel.edu
  163. in the directory pub/Lang/Toolpack/.
  164. The UNIX version is in the file toolpack.tar.Z
  165. Serious hackers will want the versions in the Distrib directory.
  166.  
  167. The package is known to compile on Silicon Graphics and Sun machines,
  168. though the Makefile is reasonably braindamaged.
  169.  
  170. You will need about 16 MB for the stripped executables on an SGI machine.
  171. Figure on double that for compiling the package.....
  172.  
  173. Have fun!
  174. --
  175. John D. McCalpin            mccalpin@perelandra.cms.udel.edu
  176. Assistant Professor            mccalpin@brahms.udel.edu
  177. College of Marine Studies, U. Del.    John.McCalpin@mvs.udel.edu
  178.  
  179.  
  180.  
  181. Q4) "Why do people use FORTRAN?, C is so much better"
  182.  
  183.    One should avoid such pointless arguments .... if you feel this
  184.    way, don't subscribe to comp.lang.fortran.
  185.  
  186.    This sort of question always triggers off a protracted discussion,
  187.    the highlights of which are typically:
  188.  
  189.        a) FORTRAN and C have different semantics. A FORTRAN optimizer
  190.       knows more about aliasing, function interactions, and I/O. A
  191.       C optimizer has to infer or compute such information. C
  192.       bigots typically have neither written such optimizers nor
  193.       worked with folks who do it for a living, and are prone to
  194.       dismiss such arguments as being petty and neolithic.
  195.  
  196.       FORTRAN programmers are often a bit more in touch with high
  197.       performance computing, and are unwilling to bet that heavily
  198.       on compiler wizardry.
  199.     
  200.       In addition, ANSI/ISO C has very tight requirements on
  201.       expression evaluation (an overreaction to the K&R ignore
  202.       parenthesis days) which cripples an optimizer even further.
  203.       The restrictions are spelled out in Section 5.1.2.3 of
  204.       ISO/IEC 9899-1990. Both the '77 and '90 Fortran standards
  205.       allow the optimizer more latitude.
  206.  
  207.       Of course, compiler options, vendor extensions and the like
  208.       sometimes narrow the difference. Also, some Fortran
  209.       compilers do not take advantage of all of these features of
  210.       the language, thus narrowing the gap in the other direction.
  211.  
  212.       On any given code, on any given system, all bets are off.
  213.  
  214.       b)  There is a vast body of existing FORTRAN code (much of which
  215.       is publically available and of high quality). Numerical
  216.       codes are particularly difficult to "vet", scientific
  217.       establishments usually do not have large otherwise idle
  218.       programming staffs, etc.  so massive recoding into any new
  219.       language is typically resisted quite strongly.
  220.  
  221.       c)  Fortran tends to meet some of the needs of scientists
  222.       better.  Most notably, it has built in support for:
  223.         - variable dimension array arguments in subroutines
  224.         - a compiler-supported infix exponentiation operator which
  225.           is generic with respect to both precision and type,
  226.           *and* which is generally handled very efficiently  or
  227.           the commonly occuring special case floating-point**small-integer
  228.         - complex arithmetic
  229.         - generic-precision intrinsic functions
  230.  
  231.       d)  Retraining staff is quite expensive.
  232.  
  233.       e)  It is sometimes argued that:
  234. - Jonathan Thornburg <also responsible for misc. other fixups>
  235.     Fortran tends to be easier for non-experts to learn
  236.     than C, because its "mental model of the computer" is
  237.     much simpler.  For example, in Fortran the programmer
  238.     can generally avoid learning about pointers and memory
  239.     addresses, while these are essential in C.  More generally,
  240.     in Fortran the difference between (C notation) x, &x,
  241.     and often even *x is basically hidden, while in C it's
  242.     exposed.  For non-experts this makes Fortran a considerably
  243.     simpler language.
  244.  
  245.     Because of this relative simplicity, for simple programming
  246.     tasks which fall within its domain, (say writing a simple
  247.     least-squares fitting routine), Fortran generally requires
  248.     much less computer science knowledge of the programmer than
  249.     C does, and is thus much easier to use.
  250.  
  251.  
  252. Q5)  Why can't I get an electronic version of the standard?
  253.  
  254.     Someday, perhaps you can. However, at the moment the various
  255.     standards bodies finance some fraction of their work via sales of
  256.     standards documents. ISO and ANSI have both claimed copyright to
  257.     the finished standard, so those who would make and distribute
  258.     copies should be forewarned.
  259.  
  260.     It should be noted that various people are working to correct
  261.     this; but it is unlikely to ever become free.
  262.  
  263. Q6) Where can I get "foo" (some random package)
  264.  
  265. Q6) Where can I get "foo" (some random package)
  266.         contributed by:
  267.                 Marc R. Roussel
  268.                                 mroussel@alchemy.chem.utoronto.ca
  269.  
  270.     Use archie. archie is an online database of what is available and
  271.     where on the "net". Archie can be used either via telnet or by
  272.     mail.
  273.  
  274.     For information about archie send
  275.  
  276.     mail archie@archie.rutgers.edu
  277.     subject: help
  278.  
  279.     And you will get back copious directions on how to use archie.  If
  280.     you prefer interactive experimentation, telnet to
  281.     archie.rutgers.edu and log in as archie.  No password will be
  282.     required.  The first thing you will be shown is a list of other
  283.     archie servers.  If one of these servers is geographically much
  284.     closer to you than Rutgers, NJ, please disconnect (by typing 'quit')
  285.     and use that one.  To save you this step, here is the latest list of
  286.     archie sites:
  287.  
  288.     archie.rutgers.edu     128.6.18.15     (Rutgers University)
  289.     archie.unl.edu     129.93.1.14     (University of Nebraska in Lincoln)
  290.     archie.sura.net     128.167.254.179 (SURAnet archie server)
  291.     archie.ans.net     147.225.1.2     (ANS archie server)
  292.     archie.au         139.130.4.6     (Australian server)
  293.     archie.funet.fi     128.214.6.100     (European server in Finland)
  294.     archie.doc.ic.ac.uk  146.169.11.3     (UK/England server)
  295.     archie.cs.huji.ac.il 132.65.6.15     (Israel server)
  296.     archie.wide.ad.jp     133.4.3.6     (Japanese server)
  297.  
  298.     I believe that all of these servers run the mail server as well as
  299.     the telnet and archie server software.  (The archie server is a
  300.     third way to use archie.  It's probably the best way, but it
  301.     requires that you install software.)
  302.  
  303.     Once you logged into an archie server, you will want to make
  304.     sure that all the information you will retrieve will be mailed to
  305.     you.  Type
  306.  
  307.     set mailto userid@machine.foo.edu
  308.  
  309.     where, of course, you will substitute your own email address for the
  310.     made-up one shown above.  You are now ready to search the database.
  311.     If at any time you want to know what options are available to you,
  312.     type help.  To search for a program or file, type
  313.  
  314.     prog foo
  315.  
  316.     where foo is the name of the program or file required.  Once your
  317.     search is done, type 'mail' to have the output sent to you.  (The
  318.     output will almost always be several pages long.)  Then type 'quit' to
  319.     exit.
  320.  
  321. Q7)  Where can I get a free compiler?
  322.  
  323.     One such is f2c.
  324.  
  325. From: mwm@a.gp.cs.cmu.edu (Mark Maimone)
  326. Newsgroups: comp.lang.fortran,comp.lang.c
  327. Subject: Re: Fortran to C translator
  328. Keywords: fortran, C, translator, f2c
  329. Date: 13 Sep 90 01:43:30 GMT
  330. Organization: Carnegie-Mellon University, CS/RI
  331.  
  332.  
  333.     Since there have been several requests for a Fortran to C translator
  334. in the past week, I'm reposting the announcement about f2c.  The short
  335. answer is you can get f2c by anonymous-ftp from research.att.com in
  336. directory dist/f2c.
  337.  
  338. ------------------------------------------------------------------------------
  339.  
  340.     Source for f2c, a Fortran 77 to C translator jointly developed by
  341. folks from Bell Labs, Bellcore, and Carnegie Mellon, is now freely
  342. available.
  343.  
  344.     F2c was derived from the original UNIX operating system's f77(1),
  345. and the generated C follows f77's calling conventions; on some machines, the
  346. resulting object files are interchangeable with (and behave
  347. indistinguishably from) objects compiled by f77.  The main "advantage" of
  348. f2c is that it converts ANSI standard Fortran 77 into C without manual
  349. intervention, at least when invoked by a suitable script or makefile (that
  350. may need to exercise an f2c option to ensure that COMMON blocks are defined
  351. just once).  The main "problems" are that f2c does no code restructuring
  352. (e.g., gotos are preserved) and that Fortran I/O gets converted into a bunch
  353. of calls; thus the translated C code doesn't look too pretty, and in general
  354. one would need to maintain the Fortran rather than its translation into C.
  355. [F2c is not meant to displace the services of commercial vendors whose
  356. business is to convert Fortran into maintainable C.]
  357.  
  358.     There is a plethora of options, many of which exist to support
  359. different compilation environments for the translated C (e.g., ANSI C or C++
  360. compatibility, different type sizes, separate files for COMMON blocks to
  361. appease "smart" linkers).  So far f2c (and f2c-generated source) has
  362. compiled successfully on many machines:  Sun, Vax, IBMRT, Apollo, SGI, MIPS,
  363. and Cray to name a few.
  364.  
  365.     F2c has been under test by the net community for over a year
  366. and has been verified on the NBS tests, several large math libraries,
  367. floating point tests, even code for laying cable on the ocean floor!
  368.  
  369.     To find out about f2c, send the following E-mail message to netlib
  370. (netlib@research.att.com or research!netlib):
  371.  
  372.     send index from f2c
  373.  
  374. Your message will be answered automatically (by a program -- see CACM vol.
  375. 30 #5 (May, 1987), pp. 403-407).  You will receive a reply explaining how to
  376. automatically acquire f2c source (about 600K), f2c library source (130K),
  377. and supporting info (man page, etc).  Or you can anonymous-FTP to
  378. research.att.com and look in directory dist/f2c at these files:
  379.  
  380.     all.Z -- 250K compressed shar file for f2c
  381.     f2c.ps.Z -- 24 page tech report describing f2c
  382.     index -- general info about files
  383.     libf77.Z, libi77.Z -- compressed shar files for libraries
  384.  
  385. ****************************** DISCLAIMER ******************************
  386.          Careful! Anything free comes with no guarantee.
  387. ************************************************************************
  388.  
  389. ----------------------------------------------------------------------
  390. Mark Maimone                phone: (412) 268 - 7698
  391. Carnegie Mellon Computer Science    email: mwm@cs.cmu.edu
  392.                            cmcspt!mwm@cs.cmu.edu
  393.  
  394. Notes: f2c accepts only fairly vanilla FORTRAN; vendor supplied f77's
  395.        usually produce better quality code, and accept a wider variety
  396.        of codes.
  397.  
  398. Q8)  What is the best compiler for a PC?
  399.  
  400.     There are many products, some are quite good. Few are free.
  401.     f2c and gcc can be had for the PC environment. Popular ones are:
  402.  
  403.     Lahey (very fast compilation; excellent reputation for support)
  404.     Watcom (touted for good optimization)
  405.     MicroWay (support for odd floating point units)
  406.     LPI  (multi-platform support)
  407.     MicroSoft (various good hooks into windows and such)
  408.     Absoft (multi-platform support)
  409.  
  410.    It is beyond the scope of a faq to provide a commercial endorsement.
  411.  
  412. Q9) How does Fortran 90 relate to FORTRAN '77?
  413.  
  414.     With a few minor exceptions, Fortran 90 is a superset
  415.     of X3.9-1978 FORTRAN.
  416.  
  417. But this does not mean that all "77" codes will port sans changes.
  418. Many (if not most) programmers employed constructs beyond the '77
  419. standard, or rely on unspecified behavior (say, assuming that an OPEN
  420. of an existing file will position the file pointer to just past the
  421. last record already written) which has changed (that is to say, has
  422. become specified).
  423.  
  424. This leads to the obvious question, what is new in Fortran 90?
  425.  
  426. A complete answer would require considerable text. Some of the most
  427. obvious additions are:
  428.  
  429.     1) array notation (operators, etc.)
  430.     2) dynamic memory allocation
  431.     3) derived types and operator overloading
  432.     4) keyword argument passing, INTENT (in, out, inout)
  433.     5) modules
  434.     6) modern control structures
  435.     7) free format source code form
  436.     8) other stuff
  437.  
  438. While it is always tricky to characterize the motives of a large group
  439. of people, I <khb> am inclined to try as follows:
  440.  
  441.    '90 incorporates two sets of improvements: (1) relatively minor
  442.    fixups that *could* have been done earlier (2) relatively major
  443.    changes to enable better software engineering practices.
  444.  
  445. Sometimes a "minor" fixup has major effect, such as addition of free
  446. form source form combined with cannonization of the MIL-STD 1753
  447. INCLUDE.
  448.  
  449. I further go off on a limb and assert that it was the goal of the
  450. *committee* to evolve Fortran in a fashion to enable it to continue to
  451. be the premier language for scientific computation.
  452.  
  453.  
  454. Q10) My compiler is mis-behaving; who enforces the standard?
  455.  
  456.     ANSI and ISO standards do not usually have a particular enforcement
  457.     mechanism. Local bodies sometimes do.
  458.  
  459.     However, it should be borne in mind that if *your* source code is
  460.     not standard compliant there is *NO* obligation for a FORTRAN ('77
  461.     and before) compiler to do  *ANYTHING* in particular. In Fortran (90)
  462.     the text in "constraints" must be tested and a warning produced
  463.     (compiler option can be used to evade this, of course).
  464.  
  465.     Some (notably Guy Steele, with respect to another standard) have
  466.     noted that when non-standard complying code is encountered, a
  467.     compiler may do *ANYTHING* including initation of Global Warfare.
  468.     Keep this in mind.
  469.  
  470.     When you do find a bona fide compiler bug, you are generally best
  471.     served by reporting it to the *vendor*. If you neglect to tell the
  472.     vendor, how can you complain about it not being fixed?
  473.  
  474.     When reporting a *suspected* bug be sure to be quite specific
  475.     about the computer system, operating system rev level (patches
  476.     applied if known) and *compiler*version* (and patches thereof).
  477.     It is very hard for people to read your mind; but they will try.
  478.     The attempts are often entertaining, sometimes helpful, but always
  479.     an inefficient use of people-time and net-bandwidth.
  480.  
  481.     Also note that it is generally helpful if you cut down the example
  482.     to the smallest size you can. Vendors are developers too; the
  483.     tendency is invest time/money where one can get the biggest bang
  484.     for the buck.
  485.  
  486.  
  487. Q11) What are good books on Fortran?
  488.  
  489.     Don't know if they are good. Inclusion in the list is not
  490.     endorsement.  Have misplaced name of the compiler of the
  491.     original list <sorry>
  492.  
  493.  
  494. Author                         Title                                     Year
  495. Kruger                   Efficient Fortran Programming          1990
  496. Mojena/Ageloff                 FORTRAN 77                                 1990
  497. Metcalf/Reid                   FORTRAN 90 EXPLAINED                       1990
  498. Boyle                          FORTRAN 77 PDQ                             1989
  499. Bezner                         FORTRAN 77                                 1989
  500. Tremblay                       PROGRAMMING IN FORTRAN 77                  1988
  501. Salmon                         ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  502. Nyhoff/Leestma                 FORTRAN 77 FOR ENGINEERS & SCIENTISTS      1988
  503. McCracken/Salmon               ... ENGINEERS & SCIENTISTS WITH FORTRAN 77 1988
  504. Davis/Hoffman                  FORTRAN 77: A STRUCTURED DISCIPLINED STYLE 1988
  505. Barnard/Skillicorn             FORTRAN 77 FOR ENGINEERS AND SCIENTISTS    1988
  506. Mashaw                         PROGRAMMING STRUCTURED FORTRAN 77          1987
  507. Cole                           FORTRAN 77: A STRUCTURED ... APPROACH      1987
  508. Boillot                        UNDERSTANDING FORTRAN-77                   1987
  509. Starkey/Ross                   FUNDAMENTAL PROGRAMMING WITH FORTRAN 77    1986
  510. Rouse/Bugnitz                  INTRODUCTION TO FORTRAN 77                 1986
  511. Ratzer                         FORTRAN 77 COURSE                          1986
  512. Page                           FORTRAN 77 FOR HUMANS                      1986
  513. Lehman                       ... SOCIAL SCIENCES: ALGORITHMS & FORTRAN 77 1986
  514. Smith                          FORTRAN 77: A PROBLEM-SOLVING APPROACH     1985
  515. Shelly                         FORTRAN 77: AN INTRODUCTION                1985
  516. Nickerson                      FUNDAMENTALS OF FORTRAN 77 PROGRAMMING     1985
  517. Metcalf                        EFFECTIVE FORTRAN 77                       1985
  518. McKeown                        STRUCTURED PROGRAMMING USING FORTRAN 77    1985
  519. Hume                           FORTRAN 77 FOR SCIENTISTS & ENGINEERS      1985
  520. Dillman                        PROBLEM SOLVING WITH FORTRAN 77            1985
  521. Brainerd                       FORTRAN 77 FUNDAMENTALS AND STYLE          1985
  522. Borse                          FORTRAN 77 & NUMERICAL METHODS FOR ENGINEERS1985
  523. Adman                          FORTRAN 77 SOLUTIONS NON-SCIENTIFIC PROBS. 1985
  524. SSI, Inc. Staff                FORTRAN 77 REFERENCE                       1984
  525. Etter                          PROBLEM SOLVING WITH STRUCTURED FORTRAN 77 1984
  526. Etter                          PROBLEM SOLVING USING FORTRAN 77            ?
  527. Dyck                           FORTRAN 77: A STRUCTURED APPROACH ...      1984
  528. Chivers/Clark                  FORTRAN 77: A HANDS ON APPROACH            1984
  529. Adman                          FORTRAN 77 FOR NON-SCIENTISTS              1984
  530. Willamson/Levesque           * A GUIDEBOOK TO FORTRAN ON SUPERCOMPUTER   1989
  531. Rule                           FORTRAN 77: A PRACTICAL APPROACH          1983
  532. Rouse/Bugnitz                  PROGRAMMING THE IBM PC: FORTRAN 77        1983
  533. Nyhoff/Leestma                 PROBLEM SOLVING WITH FORTRAN 77           1983
  534. Marateck                       FORTRAN 77                                1983
  535. Lehmnkuhl                      FORTRAN 77                                1983
  536. Law                            ANSI FORTRAN 77: INTRO. TO SOFTWARE DESIGN 1983
  537. Holoien/Behforooz              ... STRUCTURED PROGRAMMING WITH FORTRAN 77 1983
  538. Grout                        FUNDAMENTAL ... PROGRAMMING USING FORTRAN 77 1983
  539. Fleming/Redish                 THE U. S. MC MASTER GLOSSARY OF FORTRAN-77  1983
  540. Cole                           ANSI FORTRAN IV WITH FORTRAN 77 EXTENSIONS  1983
  541. Wu                             ANSI FORTRAN IV & 77 AND BUSINESS PROGRAMS  1982
  542. Pollack                        STRUCTURED FORTRAN 77 PROGRAMMING           1982
  543. Katzan                         FORTRAN 77                                  1982
  544. Gibson/Young                  INTRODUCTION TO PROGRAMMING USING FORTRAN 77 1982
  545. Ellis                         STRUCTURED APPROACH FORTRAN 77 PROGRAMMING   1982
  546. Durgin                        FORTRAN 77                                   1982
  547. Nanney                        A PROBLEM-SOLVING APPROACH USING FORTRAN 77  1981
  548. Merchant                      FORTRAN 77: LANGUAGE AND STYLE               1981
  549. Khailany                      BUSINESS PROGRAMMING FORTRAN IV/ANSI FORTRAN 1981
  550. Ashcroft                      PROGRAMMING WITH FORTRAN 77                  1981
  551. Wagener                        FORTRAN 77                                    ?
  552. Wagener                       PRINCIPLES OF FORTRAN 77 PROGRAMMING         1980
  553. Meissner/Organick             FORTRAN 77 FEATURING STRUCTURED PROGRAMMING  1980
  554. Hume/Holt                     PROGRAMMING FORTRAN 77                       1979
  555. Balfour                       PROGRAMMING IN STANDARD FORTRAN 77           1979
  556. Brainerd               Programmer's guide to Fortran 90            1990
  557. Adams et al                   Fortran 90 Handbook                         1991
  558. Counihan                      Fortran 90                                  1991
  559. O'Reilly&Assoc              Unix for FORTRAN Programmers                1990
  560.  
  561. Q12) Are there pretty printers for FORTRAN?
  562.  
  563.     Yes.
  564.  
  565.     One such is SPAG:  OTG <usa> voice 717 222 9100  fax   717 229 9103
  566.     Authors are
  567.  
  568.            Polyhedron Software Ltd
  569.            Magdalen House
  570.            98 Abingdon Road
  571.            Standlake
  572.            Witney
  573.            Oxon OX8 7RN
  574.  
  575.            Tel 0865 300 579
  576.     
  577.  
  578.     Another is Fortran development Tools from  Quibus 714 527 1384
  579.  
  580.     Also FOR_STRUC from cobalt-blue. 404 518 1116
  581.  
  582.     These more than pretty print, they optionally restructure your
  583.     code (duplicating code as needed to tidy up strange GOTO lists,
  584.     turning them into IF-THEN chains, and etc.).
  585.  
  586.  
  587. From: dappel@grafted.UUCP (Dave Appel)
  588. Newsgroups: comp.lang.fortran
  589. Subject: Re: code beautifier wanted
  590. Date: 4 Mar 92 21:30:25 GMT
  591. Organization: GRAFTED, Central Indiana's Usenet BBS 317-881-4369
  592.  
  593. wg@cbnewsm.att.com (Bill Gieske) writes:
  594. > I have tons of old FORTRAN code, most of it in upper case, the majority
  595. > of it not indented.  Is there a code beautifier, either PD or $$ that I
  596. > can run the code through to improve the readability, hence the main-
  597. > tainability?
  598. > Reply to me direct.  I will summarize if appropriate.
  599. > Bill Gieske
  600. > AT&T Bell Laboratories
  601. > wg%alux2@att.research.com
  602.  
  603.      Call "The Connection at 800-336-1166"  and ask for
  604. their software catalog.
  605.  
  606.      In their catalog that I have, Sprint 1992, there is an
  607. ad on page 39 from AutoCASE Technology.  They have
  608. a product called "AutoFLOW-FORTRAN" that lists for $1,995.
  609. It claims to automatically document your existing source code.
  610. AutoCASE's number is 408-446-2273.
  611.  
  612.       On page 93 is an ad from POWERLINE Software Inc.
  613. Their number is 800-257-5773, 206-623-9204.  They offer
  614. a product called SOURCE PRINT+, which they call a code
  615. management tool with "multi-style formatting with structured
  616. code blocking."
  617.  
  618. They have a Fortran/Basic version for $169, and a Delux
  619. Multi-language version for $249.  This program is for
  620. DOS (MS-DOS presumably) Windows, and OS/2.
  621.  
  622. Hope this helps.
  623.  
  624. --
  625. Dave Appel
  626. The Grafted Branch BBS
  627. 317-881-4369
  628. internet: dappel@grafted.UUCP
  629. uucp: ..!uunet!grafted.UUCP!dappel
  630.     -= newsfeeds available, contact robert@towers.rn.com =-
  631.  
  632. Hindsight/Fortran
  633.  
  634.         Summary:
  635.  
  636.     Features include the ability to draw an interactive structure
  637.     chart and display coverage, software complexity and
  638.     performance information on the structure chart. There are also
  639.     code tracing features, for instance 3 logic diagrams are
  640.     produced. Common blocks can be traced through the structure
  641.     charts, including specific variables within common blocks.
  642.     Hindsight is excellent for documentation, code inspection, and
  643.     bringing new software engineers up to speed on new code.
  644.  
  645. For more information or a free demo copy, contact:
  646.  
  647. Dan Zimmerman,  National Account Manager
  648. Advanced Software Automation, Inc.
  649. 3130A Coronado Dr
  650. Santa Clara, 95054
  651.  
  652. Phone: 408 492-1668  Fax: 408 492-1669
  653.